package com.vpclub.bean;

import org.springframework.stereotype.Component;

/**
 * @author : leimingchao
 * @date Date : 2021年06月23日 20:00
 */

/**
 * 默认加在IOC容器中的组件，容器启动会调用无参构造器创建对象，再进行初始化赋值等操作
 */
@Component
public class Boss {

    /**
     * @Autowired标注在构造器上，构造器要用的组件，都是从容器中获取，如果该类有无参构造器，不会调用无参构造器
     * @param car
     */
    // @Autowired
    // public Boss(Car car) {
    //     this.car = car;
    //     System.out.println("Boss。。。。有参构造器");
    // }

    /**
     * 此时会调用无参构造器，不会调用有参构造器
     * @param car
     */
    public Boss(Car car) {
        this.car = car;
        System.out.println("Boss。。。。有参构造器");
    }

    // public Boss() {
    //     System.out.println("Boss。。。。。无参构造器");
    // }

    private Car car;

    public Car getCar() {
        return car;
    }

    /**
     *@Autowired标注在方法上，Spring容器创建当前对象，就会调用方法，完成赋值
     *          方法使用的参数，自定义类型的值从IOC容器中获取
     * @param car
     */
    // @Autowired
    public void setCar(Car car) {
        this.car = car;
    }

    @Override
    public String toString() {
        return "Boss{" +
                "car=" + car +
                '}';
    }
}
